# -*- coding: utf-8 -*-

'''Image span based on same raw data structure with Image block.
'''
'''基于与图像块相同的原始数据结构的图像跨度。
'''

from ..common import constants
from .Image import Image


class ImageSpan(Image):
    '''Image span.'''
    '''图像跨度。'''

    def intersects(self, rect):
        '''Create new ImageSpan object with image contained in given bbox.
        
        Args:
            rect (fitz.Rect): Target bbox.
        
        Returns:
            ImageSpan: A copy of itself if intersects with target; otherwise empty ImageSpan. 
        '''
        '''创建包含在给定边界框中的图像的新ImageSpan对象。
        
        参数:
            rect (fitz.Rect): 目标边界框。
        
        返回:
            ImageSpan: 如果与目标相交，则返回自身的副本；否则返回空的ImageSpan。
        '''
        # add image span if most of of the image is contained in bbox
        # 如果大部分图像都包含在边界框中，则添加图像跨度
        if self.get_main_bbox(rect, constants.FACTOR_MAJOR):
            return self.copy()
        
        # otherwise, ignore image
        # 否则，忽略图像
        return ImageSpan()